// [DELETE] 1.8.1
// /**
//  * 权限管理
//  */
// import React from 'react';
// import { Modal, Input, Table, Button, Divider, Popconfirm, Card, Row, message, Form } from 'antd';
// import { connect } from 'umi';
// import { router, Link } from 'umi';
// import { withRoutePage } from '@/utils/enhanceUtils';
//
// import { removeRole, removeRoleId } from '@/services/organization';
// import AuthComponent from '@/utils/auth/AuthComponent';
// import AuthCode from '@/utils/auth/AuthCode';
// import Pagination from '@/components/Pagination';
// import { useRole, useStaff } from '../hooks';
// import styles from './style.less';
//
// // const { Search } = Input;
//
// const List = ({ location, form, dispatch }) => {
//     const { authCode } = new AuthCode('office:orgs:role');
//     const { query: urlQuery } = location;
//     const { getFieldDecorator } = form;
//
//     const [query, setQuery] = React.useState({
//         roleName: urlQuery.roleName || '',
//         pageNo: urlQuery.pageNo || 1,
//         pageSize: urlQuery.pageSize || 10,
//         orderBy: urlQuery.orderBy || ''
//     });
//
//     const [currentRecord, setCurrentRecord] = React.useState({});
//     const [visible, setVisible] = React.useState(false);
//     const titleRoleName = `员工列表——${currentRecord.roleName}`;
//
//     // 数据来源，角色列表与员工列表
//     const [roleLoading, roleData, total] = useRole(query);
//     const [staffLoading, staffData] = useStaff(currentRecord);
//
//     const getSortOrder = key => {
//         const { orderBy = '' } = urlQuery;
//         const [field, order] = orderBy.split('_');
//         if (key !== field) {
//             return false;
//         }
//         return order;
//     };
//
//     const tableChange = (pagination, filters, sorter = {}) => {
//         // 排序 URL 中的标识规则：createTime_ascend
//         const { field, order } = sorter;
//         if (field && order) {
//             const finalQuery = { ...query, orderBy: `${field}_${order}` };
//             history.push({ query: finalQuery });
//             setQuery(finalQuery);
//         } else {
//             const { orderBy, ...rest } = query;
//             history.push({ query: { ...rest } });
//             setQuery({ ...rest, orderBy: '' });
//         }
//     };
//
//     const handlePaginationChange = _pagination => {
//         const { current, ...rest } = _pagination;
//         const finalQuery = { ...query, ...rest, pageNo: current };
//         setQuery(finalQuery);
//         history.push({ query: finalQuery });
//     };
//
//     const handleRemoveRole = record => async () => {
//         const result = await removeRole(record.id);
//         if (result.code === 10000) {
//             message.success(result.msg);
//         }
//         if (result.code === 60014) {
//             message.success(result.msg);
//         }
//         setQuery({ ...query, reload: true });
//     };
//
//     const handleRemoveStaff = record => async () => {
//         const result = await removeRoleId(currentRecord.id, record.employeeId);
//         if (result.code === 10000) {
//             message.success(result.msg);
//         }
//         if (result.code === 60014) {
//             message.success(result.msg);
//         }
//         setQuery({ ...query, reload: true });
//         setCurrentRecord({ ...currentRecord, reload: true });
//     };
//
//     const handleDetail = record => () => {
//         setVisible(true);
//         setCurrentRecord(record);
//     };
//
//     const handleSet = record => () => {
//         history.push({
//             pathname: '/setting/role/add',
//             query: {
//                 id: record.id,
//                 action: 'edit'
//             }
//         });
//     };
//
//     const handleSearch = e => {
//         e.preventDefault();
//         const { getFieldsValue } = form;
//         const finalQuery = { pageNo: 1, pageSize: 10, roleName: getFieldsValue().roleName };
//         setQuery(finalQuery);
//         history.push({ query: finalQuery });
//     };
//
//     const handleAddRole = () => {
//         // 清除数据
//         dispatch({
//             type: 'role/saveRole',
//             payload: {
//                 roleDetail: {},
//                 department: [],
//                 defaultDepartment: []
//             }
//         });
//         history.push('/setting/role/add');
//     };
//
//     const handleCancel = () => {
//         setVisible(false);
//     };
//
//     const roleColumns = [
//         {
//             title: '角色名称',
//             dataIndex: 'roleName',
//             key: 'roleName',
//             width: '20%',
//             render: text => (
//                 <span className={styles.ellipsis} style={{ width: 200 }} title={text}>
//                     {text}
//                 </span>
//             )
//         },
//         {
//             title: '创建时间',
//             dataIndex: 'createTime',
//             width: '20%',
//             key: 'createTime',
//             sorter: true,
//             sortOrder: getSortOrder('createTime')
//         },
//         {
//             title: '成员数量',
//             dataIndex: 'roleCount',
//             key: 'roleCount',
//             width: '20%',
//             sorter: true,
//             sortOrder: getSortOrder('roleCount')
//         },
//         {
//             title: '角色所属',
//             dataIndex: 'companyName',
//             key: 'companyName',
//             width: '20%'
//         },
//         {
//             title: '操作',
//             dataIndex: 'action',
//             key: 'action',
//             render: (text, record) => {
//                 if (['普通用户', '超级管理员'].includes(record.roleName)) {
//                     return (
//                         <AuthComponent code={authCode('emlist')}>
//                             <span className={styles.link} onClick={handleDetail(record)}>
//                                 查看成员列表
//                             </span>
//                         </AuthComponent>
//                     );
//                 }
//                 return (
//                     <>
//                         <AuthComponent code={authCode('edit')}>
//                             <span className={styles.link} onClick={handleSet(record)}>
//                                 设置
//                             </span>
//                             <Divider type="vertical" />
//                         </AuthComponent>
//                         <AuthComponent code={authCode('emlist')}>
//                             <span className={styles.link} onClick={handleDetail(record)}>
//                                 查看成员列表
//                             </span>
//                             <Divider type="vertical" />
//                         </AuthComponent>
//                         <AuthComponent code={authCode('delete')}>
//                             <Popconfirm
//                                 title="你确定删除吗?"
//                                 onConfirm={handleRemoveRole(record)}
//                                 okText="确定"
//                                 cancelText="取消"
//                             >
//                                 <span className={styles.link}>删除</span>
//                             </Popconfirm>
//                         </AuthComponent>
//                     </>
//                 );
//             }
//         }
//     ];
//
//     const staffColumns = [
//         {
//             title: '姓名',
//             dataIndex: 'userName',
//             key: 'name',
//             width: 150
//         },
//         {
//             title: '公司',
//             dataIndex: 'companyName',
//             key: 'companyName',
//             width: 200
//         },
//         {
//             title: '部门',
//             width: 150,
//             dataIndex: 'departmentName',
//             key: 'departmentName',
//             render: text => (
//                 <div className={styles.ellipsis} style={{ width: 150 }} title={text}>
//                     {text}
//                 </div>
//             )
//         },
//         {
//             title: '操作',
//             dataIndex: 'action',
//             key: 'action',
//             render: (text, record) => (
//                 <>
//                     <AuthComponent code={authCode('emlist:detail')}>
//                         <Link
//                             to={{
//                                 pathname: '/office/personnelManagement/organization/employeeList/detail',
//                                 query: { userCode: record.userCode, employeeCode: record.employeeCode }
//                             }}
//                         >
//                             员工详情
//                         </Link>
//                         <Divider type="vertical" />
//                     </AuthComponent>
//                     <AuthComponent code={authCode('emlist:delete')}>
//                         <Popconfirm
//                             title="你确定删除吗?"
//                             okText="确定"
//                             cancelText="取消"
//                             onConfirm={handleRemoveStaff(record)}
//                         >
//                             <span className={styles.link}>删除</span>
//                         </Popconfirm>
//                     </AuthComponent>
//                 </>
//             )
//         }
//     ];
//
//     return (
//         <Card style={{ margin: 16 }} bordered={false}>
//             <Row type="flex" justify="space-between" style={{ marginBottom: 12, alignItems: 'center' }}>
//                 <AuthComponent code={authCode('query')}>
//                     {/* <Search
//                         defaultValue={urlQuery.roleName}
//                         onSearch={handleSearch}
//                         placeholder="输入角色名称"
//                         enterButton="搜索"
//                         style={{ width: 300 }}
//                         allowClear
//                     /> */}
//                     <Form layout="inline" onSubmit={handleSearch}>
//                         <Form.Item>
//                             {getFieldDecorator('roleName', {
//                                 initialValue: urlQuery.roleName
//                             })(<Input style={{ width: 248 }} placeholder="输入角色名称" allowClear />)}
//                         </Form.Item>
//                         <Form.Item>
//                             <Button type="primary" htmlType="submit">
//                                 搜索
//                             </Button>
//                         </Form.Item>
//                     </Form>
//                 </AuthComponent>
//                 <AuthComponent code={authCode('add')}>
//                     <Button type="primary" onClick={handleAddRole}>
//                         添加角色
//                     </Button>
//                 </AuthComponent>
//             </Row>
//
//             <Table
//                 rowKey="id"
//                 bordered={false}
//                 columns={roleColumns}
//                 loading={roleLoading}
//                 dataSource={roleData}
//                 onChange={tableChange}
//                 pagination={false}
//             />
//             <Pagination
//                 total={total}
//                 current={Number(query.pageNo)}
//                 pageSize={Number(query.pageSize)}
//                 onChange={handlePaginationChange}
//                 loading={roleLoading}
//             />
//
//             <Modal title={titleRoleName} visible={visible} onCancel={handleCancel} width={720} footer={null}>
//                 <Table
//                     rowKey="employeeId"
//                     dataSource={staffData}
//                     columns={staffColumns}
//                     loading={staffLoading}
//                     pagination={false}
//                     scroll={{ y: 300 }}
//                 />
//             </Modal>
//         </Card>
//     );
// };
// export default withRoutePage(
//     connect(({ user }) => ({
//         user: user.currentUser
//     }))(Form.create()(List))
// );
// // export default connect(({ user }) => ({ user: user.currentUser }))(List);
